//
//  UserManager.h
//  高仿暴走斗图
//
//  Created by huangsongyao on 16/3/4.
//  Copyright © 2016年 huangsongyao. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "HSYJSONModel.h"

@interface UserManager : NSObject

@property (nonatomic, strong) NSString *userId;                         //用户id
@property (nonatomic, strong) NSString *version;                        //版本号
@property (nonatomic, strong) NSString *icon;                           //用户头像
@property (nonatomic, strong) NSString *deviceToken;                    //令牌

@property (nonatomic, assign) kUserStatusType userStatusType;           //登陆状态
@property (nonatomic, assign) kUserGenderType userGender;               //用户性别

@property (nonatomic, strong) HSYJSONModel *jsonModel;                  //JSONModel构造

+ (instancetype)shareInstance;

/**
 *  先获取NSUserDefaluts缓存字段
 *
 *  @return rac 信号，通知获取到初始数据后
 */
+ (RACSignal *)initWithLocalConfiguration;


#pragma mark - Getter && Setter

/**
 *  获取用户id
 *
 *  @return 用户id
 */
- (NSString *)getUserID;

/**
 *  设置用户id
 *
 *  @param userID 用户id
 */
- (void)saveUserID:(NSString *)userID;

/**
 *  获取用户头像
 *
 *  @return 用户头像
 */
- (NSString *)getIcon;

/**
 *  设置用户头
 *
 *  @param icon 用户头像
 */
- (void)saveIcon:(NSString *)icon;

/**
 *  获取设备令牌
 *
 *  @return 设备令牌
 */
- (NSString *)getDeviceToken;

/**
 *  设置设备令牌
 *
 *  @param deviceToken 设备令牌
 */
- (void)saveDeviceToken:(NSString *)deviceToken;

/**
 *  获取用户状态，枚举
 *
 *  @return 用户状态
 */
- (kUserStatusType)getUserStatus;

/**
 *  设置用户状态
 *
 *  @param userStatusType 用户状态，枚举
 */
- (void)saveUserStatusType:(kUserStatusType)userStatusType;

/**
 *  获取用户性别
 *
 *  @return 获取用户性别，枚举
 */
- (kUserGenderType)getUserGender;

/**
 *  设置用户性别
 *
 *  @param userGender 用户性别，枚举
 */
- (void)saveUserGender:(kUserGenderType)userGender;

/**
 *  获取用户JSONModel数据
 *
 *  @return 用户性别，枚举
 */
- (HSYJSONModel *)getJSONModel;

/**
 *  设置用户JSONModel数据
 *
 *  @param jsonModel 用户JSONModel数据
 */
- (void)saveJSONModel:(HSYJSONModel *)jsonModel;

@end
